2024年11月蓝桥杯蓝桥C++(STEMA)中/高级
STEMA
2024
2025-06-09 20:27:53
45次
一、单选题
请阅读下面的程序,MySort函数要实现的功能是使用冒泡排序对数组进行由大到小的排序,请问其中两处横线应该填写的内容是()。
void MySort(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (______) { // ①
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int myArray[] = {1,2,3,4,5};
MySort(______, 5); // ②
for (int i = 0; i < 5; ++i) {
cout << myArray[i] << " ";
}
return 0;
} | A. ①arr[j]>arr[j+1] ②myArray |
B. ①arr[j]>arr[j+1] ②&myArray |
| C. ①arr[j]<arr[j+1] ②myArray |
D. ①arr[j]<arr[j+1] ②&myArray |
【知识点】 蓝桥杯C++中/高级
二、编程题
求和
题目描述:
给定一个包含 n 个整数的数列,请统计其中有多少个整数满足大于 x 且小于 y,并输出所有满足要求的整数之和。
例如:n = 6,数列为 [13,31,45,17,20,99];x = 18,y = 50,数列中满足大于 18 且小于50 的整数有 31、45、20,和为 96(31 + 45 + 20)。
输入描述:
第一行输入三个整数 n、x 和 y(1≤n≤1000,1≤x<y≤5000),整数之间以一个空格隔开;
第二行输入 n 个整数(1≤整数≤5000),整数之间以一个空格隔开。
输出描述:
输出一个整数,表示数列中所有满足大于 x 且小于 y 的整数之和。
样例输入:
6 18 50 13 31 45 17 20 99
样例输出:
96
【知识点】 蓝桥杯C++中/高级
21 点游戏
题目描述:
在 21 点游戏中,玩家的目标是使手中牌的点数总和尽可能接近21点,但不能超过 21 点。游戏采用一副去除大小王的扑克牌,其中包含 13 种牌面(A、2、3、4、5、6、7、8、9、10、J、Q、K),每种牌面有 4 张。牌的点数定义如下:
1)A 可以代表 1 点或 11 点;
2)J、Q、K 均代表 10 点;
3)牌面 2~10 代表的点数与其牌面相同(例如:2 代表 2 点,3 代表 3 点,以此类推)。
给定一个字符串 S,表示你手中的牌。请将这些牌的点数累加(如果手中的牌有 A,你可以单独调整其中每一个 A 的点数),并计算在不超过 21 点的情况下,S 的总点数的最大值;如果无论怎么计算都大于 21点,则输出 0。
注:牌面 10 会占用 2 个字符位,其余牌面各占用 1 个字符位。
例 1: S = "A3A4";S 的总点数的最大值是 19(其中一个 "A" 代表 1 点,另一个 "A" 代表 11 点),
即 1 + 3 + 11 + 4。
例 2:S = "A10J";S 的总点数的最大值是 21("A" 代表 1 点,中间的 "10" 代表 10 点,"J" 也代表 10 点),即 1 + 10 + 10。
例 3:S = "AJQK";无论 "A" 代表 1 点还是 11 点,S 的总点数都大于 21,故输出 0。
输入描述:
输入一个仅包含 13 种牌面的字符串 S(2≤S 的长度≤11),其中相同的牌不会超过 4 张。
输出描述:
输出一个整数,表示 S 的总点数的最大值,如果无论怎么计算都大于 21 点,则输出 0。
样例输入:
A3A4
样例输出:
19
【知识点】 蓝桥杯C++中/高级
热气球
题目描述:
某景区推出了一项热气球体验项目,目前有 n 组游客在等待乘坐热气球,且每组游客人数都不超过 4 人。
每个热气球的最大载客量为 4 人。
需要注意的是,同一组游客必须乘坐同一个热气球,而且只要人数不超过最大载客量,一个热气球可以容纳多组游客。
请你计算该景区最少需要准备多少个热气球,才能让 n 组游客同时乘坐上热气球。
例如:n = 7,7 组游客的人数分别是 3、2、1、2、1、4、2;要让所有游客同时乘坐上热气球,最少需要准备 4 个热气球,其中一种最优分组方案如下:
第 1 组(3 人)和第 3 组(1 人)乘坐第一个热气球;
第 2 组(2 人)和第 4 组(2 人)乘坐第二个热气球;
第 5 组(1 人)和第 7 组(2 人)乘坐第三个热气球;
第 6 组(4 人)乘坐第四个热气球。
输入描述:
第一行输入一个整数 n(1≤n≤105),表示游客的组数;
第二行输入 n 个整数(1≤整数≤4),表示每组游客的人数,整数之间以一个空格隔开。
输出描述:
输出一个整数,表示该景区最少需要准备的热气球的数量。
样例输入:
7 3 2 1 2 1 4 2
样例输出:
4
【知识点】 蓝桥杯C++中/高级
